package com.neu.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.neu.base.BaseEntity;
import com.neu.utils.excel.EasyExcelConvert;
import com.neu.utils.excel.EnumFiledConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Schema(description = "通知实体")
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("notice")
public class Notice extends BaseEntity {
    /**
     * 通知ID
     */
    @TableId(type= IdType.ASSIGN_ID)
    @ExcelProperty("通知ID")
    private String noticeId;

    /**
     * 通知标题
     */
    @ExcelProperty("通知标题")
    private String noticeTitle;
    /**
     * 通知类型  0 通知公告  1 邀请信息
     */
    @ExcelProperty(value="通知类型",converter = EasyExcelConvert.class)
    @EnumFiledConvert(enumMap = "0|通知公告,1|邀请信息")
    private String noticeType;
    /**
     * 租户ID
     */
    @ExcelProperty("租户ID")
    private String tenantId;

    /**
     * 项目ID
     */
    @ExcelProperty("项目ID")
    private String projectId;

    /**
     * 被邀请成为的岗位id
     */
    @ExcelIgnore
    private String roleId;
    /**
     * 通知优先级  0 低  1 中  2 高
     */
    @ExcelProperty(value="通知优先级",converter = EasyExcelConvert.class)
    @EnumFiledConvert(enumMap = "0|低,1|中,2|高")
    private String priority;
    /**
     * 通知范围  0 全部  1 部分
     */
    @ExcelIgnore
    private String userScope;
    /**
     * 通知内容
     */
    @ExcelProperty("通知内容")
    private String content;
    /**
     * 备注
     */
    @ExcelProperty("备注")
    private String remark;
}
